#ifndef __ULUI_MENULIST_H__
#define __ULUI_MENULIST_H__

#include "VSDL_menuBar.h"
#include "VSDL_point.h"
#include <list>

using namespace std;

class ULUI_Menu : public VSDL_MenuBar{
public:
	int id;
public:
	ULUI_Menu();
	void SetID(int id);	
	int GetID();
	bool operator>(const ULUI_Menu &menu);
	bool operator<(const ULUI_Menu &menu);
	bool operator==(const ULUI_Menu &menu);
};

class ULUI_MenuList{
private:
	bool vertical;
	VSDL_Point startXY;
	VSDL_Point currentXY;
public:
	list<ULUI_Menu> menuList;
	list<ULUI_Menu>::iterator iter;
public:
	ULUI_MenuList();
	ULUI_MenuList(bool vertical);
	void SetVertical(bool vertical);
	void AddMenu(ULUI_Menu &menu);
	void DelMenu(int menuID);
	void Reset();
	ULUI_Menu &GetMenu(int menuID);
	int GetMenuCount();
	void SetFirstMenuXY(VSDL_Point startXY);
	void UpdateMenuList(int mouseX, int mouseY);
	void Show(SDL_Surface *destSurf);
};

#endif /*__ULUI_MENULIST_H__*/
